Skip to content

Conversation

@Al-Kindi-0
Copy link

No description provided.

tcoratger and others added 30 commits November 18, 2025 22:02
…r` trait (Plonky3#1152)

* challenger: add observe_lifted to FieldChallenger trait

* change name

* fix name

* fix trait bounds

* minor change

* minor change
…nky3#1155)

* challenger: add unit tests for observe_base_as_algebra_element

* fix comments
* Update lib.rs

* Update Cargo.toml

* Update koala_bear.rs

* Update baby_bear.rs

* Update bn254.rs

* Update Cargo.toml

* Update bn254.rs

* Update baby_bear.rs

* Update bn254.rs

* Update koala_bear.rs

* Update bn254.rs

* Update baby_bear.rs

* Update Cargo.toml

* Update lib.rs

* Update lib.rs

* Update Cargo.toml

* Update Cargo.toml

* Update lib.rs

* Update koala_bear.rs

* Update baby_bear.rs

* Update lib.rs

* Update lib.rs

* Update lib.rs

* Update Cargo.toml

* Update lib.rs

* Update lib.rs

* Update field-testing/src/lib.rs

---------

Co-authored-by: AngusG <[email protected]>
* Change traits and add folders with lookups

* Apply comments

* Apply comment
* matrix: make HorizontallyTruncated more generic

* small cleanup
Updates the requirements on [criterion](https://github.com/criterion-rs/criterion.rs) to permit the latest version.
- [Release notes](https://github.com/criterion-rs/criterion.rs/releases)
- [Changelog](https://github.com/criterion-rs/criterion.rs/blob/master/CHANGELOG.md)
- [Commits](criterion-rs/criterion.rs@criterion-plot-v0.7.0...criterion-v0.8.0)

---
updated-dependencies:
- dependency-name: criterion
  dependency-version: 0.8.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* uni stark: small touchups

* Update uni-stark/src/symbolic_expression.rs

Co-authored-by: Robin Salen <[email protected]>

* small touchup

---------

Co-authored-by: Robin Salen <[email protected]>
* core: add error messages to Error enums via thiserror

* sort cargo file
* feat: add SubAirBuilder

* refactor: remove SubMatrixRowSlices and reuse HorizontallyTruncated

* chore: clippy

* chore: fmt

* Update sub_builder.rs

Co-authored-by: Thomas Coratger <[email protected]>

* Update sub_builder.rs

Co-authored-by: Thomas Coratger <[email protected]>

* Update sub_builder.rs

Co-authored-by: Thomas Coratger <[email protected]>

* Update rc_sub_builder.rs

Co-authored-by: Thomas Coratger <[email protected]>

---------

Co-authored-by: Thomas Coratger <[email protected]>
* doc: add rustdoc links

* more linking
* Allow users to impl either permute or permute_mut

* Add comment to Permutation trait method indicating the circular nature of the trait definitions.
* Integrate lookups to prover and verifier

* Apply comments

* Apply comments and Clippy
* Work on automated releases

- Added CI to trigger a crates.io release when a release PR is merged.
- Added a script to generate a release PR (and temporarily modify
  sub-crate `Cargo.toml`s.
- Added `release-plz.toml`.

* A bit more work on automated release logic

* Fixed some things

* Now only runs on main

* Cleanup

* Removed old release scripts

* `release-plz` CI now looks for the "release" label

* Docs

* Various squashed commits

Removed unused release logic

REMOVE ME!!

Now using `GIT_TOKEN` again

* (AI) Finished the logic to release

* Apply suggestions from code review

- Applied Syxton's new packages.

Co-authored-by: AngusG <[email protected]>

---------

Co-authored-by: AngusG <[email protected]>
* challenger: add observe_algebra_elements method

* Update challenger/src/lib.rs

Co-authored-by: AngusG <[email protected]>

* fix comment

* fix comment

---------

Co-authored-by: AngusG <[email protected]>
* core: small touchups

* touchups

* touchups
* challenger: use observe_algebra_slice when possible

* clippy

* chore: pacify clippy

---------

Co-authored-by: Robin Salen <[email protected]>
Add a proof-of-work phase before each commit-phase fold challenge, using
new configuration parameter `commit_proof_of_work_bits`. Note for
simplicity, there is a single `commit_proof_of_work_bits` shared across
all rounds.

We also change the `check_witness` logic to be a no-op when `bits == 0`.
…ky3#1177)

* fix(keccak-air): align state indexing with Keccak specification

  - Add transpose after transmute to convert from row-major to standard
    Keccak indexing (state[x + 5*y])
  - Add tiny-keccak as dev-dependency for reference testing
  - Add 5 unit tests comparing output against tiny-keccak reference

  Fixes Plonky3#672

* refactor(keccak-air): use p3-keccak instead of tiny-keccak for tests

Replace tiny-keccak dev-dependency with p3-keccak for testing the
keccak-air implementation. The p3-keccak crate is already validated
against tiny-keccak in its own tests, so this avoids redundant
external dependencies while maintaining test correctness.
* implement `UniformSamplingField` and `CanSampleUniformBits` traits

The former is the trait a field will implement to define the
parameters needed for the `sample_uniform_bits` function via the
`CanSampleUniformBits` (which the challengers need to implement).

* implement `UniformSamplingField` for all small fields

* implement `CanSampleUniformBits` for `DuplexChallenger`

This also adds the `uniform-sampling-may-panic` feature, which decides
whether finding a field element >= m_k will resample (rejection
sampling) or panic. In some contexts, e.g. recursive zkVMs it may be
preferable to panic and just accept a very small probability of a
proof failing.

* implement `UniformGrindingChallenger`

This goes hand in hand with the uniform sampling for the duplex
challenger. Instead of grinding using regular sampling, this one
samples using uniform sampling.

* fix regression in `sample_bits`

Accidentally cut off the normal implementation, oops

* split sampling of values into may panic / resampling approach

We'll make it so that the user can choose which variant to call.

* remove feature for sampling with panic, split into two functions

`_may_panic` suffix for functions that may trigger a panic.

* implement `_may_panic` variants for UniformGrindingChallenger

As it is now not a feature flag, but requires a different function
call, we simply add different overloads for variants that may panic to
make it clear at the callsite.

* implement UniformSamplingField for Monty31 field

Due to the orphan rule we have to implement this trait either in the
challenger trait or in the Monty31 crate.

It seems to make sense to implement this in the challenger, as the
Monty crate is more fundamental than the challenger, which anyway
requires the notion of fields.

* use `Self` for BabyBear / KoalaBear prime

* remove outdated grinding challenger code

* remove duplicated doc comments for UniformSamplingField for each field

* remove doc comment for blanket implementation

We keep a basic comment to clarify the reader as to why it exists.

* implement sampling of bits based on a strategy-like pattern

* implement uniform grinding with generic fn

* check bits are >0 in grind fns

* add doc comments to `check_witness[_may_panic]`

* fix sort order of dependencies

* apply fixes for `cargo +stable clippy --all-targets -- -D -warnings`

* address cargo +nightly fmt --all fixes

* improve doc comment about m_k

* allow `bits = 0` argument, just return zero always

* remove `_strategy` argument, use explicit generic call instead

* have single `sample_value` function with a PANIC_ON_REJECTION const

* switch to Result based API for uniform sampling of bits

In order to allow the verifier called functions to just return false
if a panic would have happened on the prover's side

* have single `sample_uniform_bits` with const generic to choose

* allow bits == 0 in grind, grind_uniform again

* add doc comment about CanSampleUniformBits trait

* rename all panic -> error

* remove bits > 0 from last grind fn as well

* address Clippy errors

* cargo fmt fixes
- Needed for the final bit of work to automate releases.
* matrix: add pad_to_power_of_two_height

* fix comments

* Update matrix/src/dense.rs

Co-authored-by: AngusG <[email protected]>

* fmt

---------

Co-authored-by: AngusG <[email protected]>
* feat: revert `builder.assert_bool` to previous impl

* Update field.rs
BGluth and others added 18 commits December 11, 2025 22:27
- This was breaking the release CI.
* mersenne 31: optimize Poseidon2 for aarch64 Neon

* small doc touchup

* fix comment
* chore: refer to local paths for dev-dependencies

* chore: cargo sort
…replace with `From<[A; D]>` (Plonky3#1210)

* Revert "chore(field): Make `BinomialExtensionField::new` public (Plonky3#1209)"

This reverts commit 584ab6f.

* chore(field): Add `From<[A; D]> for `BinomialExtensionField`
…nky3#1208)

* SIMD optimization for grinding

* fixed clippy div_ceil error

* Added inline documentation and some optimizations

* Update the witness value outside field order  to be NEG_ONE

Co-authored-by: Adrian Hamelink <[email protected]>

---------

Co-authored-by: Adrian Hamelink <[email protected]>
* bincode: deprecate and replace by postcard

* sort cargo
* Support for zk in uni-stark

* Start adding ZK to batch-stark

* Fix some bugs

* Fix bugs

* Clippy

* Cleanup

* Update comment

* Add test with lookups and fix

* Apply comments
…1232)

Convert runtime assertions on const generic parameters to compile-time
assertions using inline const blocks. This catches invalid parameters
at compile time rather than runtime.

Changes:
- field/src/extension/binomial_extension.rs: assert!(N > 0) -> const { assert!(N > 0) }
- monolith/src/monolith.rs: WIDTH bounds checks moved to const block
- symmetric/src/compression.rs: debug_assert!(CHUNK * N <= WIDTH) -> const { assert!(...) }

Closes Plonky3#1014
* Changes for recursive lookups

* Fix release-mode visibility

* Fix
* Remove the change of API for pcs open

* Improve signature and comments

* Add a debug_assert in default open_with_preprocessing implementation
* chore: release v0.4.2

* chore: unify
Nashtare and others added 2 commits January 12, 2026 20:54
* refactor: revamp lookups API
Move basic lookup types to p3-air
Create a LookupEvaluator trait within p3-air
Make LookupGadget a supertrait of LookupEvaluator

* refactor: remove AirLookupHandler trait
Embed required methods into the Air trait

* refactor: remove AirNoLookup wrapper
The Air trait exposes all necessary logic for lookups, defaulting to no lookups.

* refactor: remove duplicate prove/verify methods

* chore: add tracing logs

* chore: cleanup

* refactor: move helper methods to LookupEvaluator

* Update air/src/lookup/mod.rs

Co-authored-by: Linda Guiga <[email protected]>

* Update air/src/air.rs

Co-authored-by: Linda Guiga <[email protected]>

---------

Co-authored-by: Linda Guiga <[email protected]>
@Al-Kindi-0 Al-Kindi-0 force-pushed the periodic-air-builder branch from c76d053 to eb4d701 Compare January 13, 2026 10:16
@Al-Kindi-0 Al-Kindi-0 changed the base branch from upstream-main to main January 13, 2026 10:17
@Al-Kindi-0 Al-Kindi-0 force-pushed the periodic-air-builder branch from 23eda28 to 522249c Compare January 14, 2026 08:36
adr1anh and others added 3 commits January 20, 2026 16:37
Move the core `SymbolicAirBuilder` struct and constraint evaluation
functions to `p3_air::symbolic`. This enables other crates to use
symbolic constraint analysis without depending on uni-stark.

STARK-specific quotient degree calculations (`get_log_num_quotient_chunks`,
`get_log_quotient_degree_extension`) remain in uni-stark.

Co-Authored-By: Claude Opus 4.5 <[email protected]>
Add support for periodic columns in AIR builders:

- Add `AirWithPeriodicColumns` trait for AIRs with periodic columns
- Add `PeriodicAirBuilder` trait with `periodic_values()` method
- Add `Entry::Periodic` variant to symbolic variables
- Add `periodic` field to `SymbolicAirBuilder`
- Add `num_periodic_columns` parameter to constraint degree functions
- Implement `PeriodicAirBuilder` for `SymbolicAirBuilder`
- Add `FilteredAirBuilder` impls for `AirBuilderWithPublicValues` and
  `PeriodicAirBuilder`

Co-Authored-By: Claude Opus 4.5 <[email protected]>
Rewrite test module with configurable MockAir that exercises all
variable kinds and conditions for comprehensive degree computation
coverage.

Co-Authored-By: Claude Opus 4.5 <[email protected]>
@adr1anh adr1anh force-pushed the periodic-air-builder branch from 806fc58 to abff049 Compare January 21, 2026 11:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.